package com.liang.manage.auth.facade.server;

import com.liang.manage.auth.facade.dto.org.OrgDTO;
import com.liang.manage.auth.facade.dto.org.OrgOutDTO;
import com.liang.nansheng.common.auth.UserSsoDTO;

import java.util.List;

/**
 * @author 王华安
 * @date 2021-04-21 20:27
 */
public interface OrgService {
    /**
     * 创建组织架构
     *
     * @param orgDTO
     * @param currentUser
     * @return
     */
    Boolean create(OrgDTO orgDTO, UserSsoDTO currentUser);

    /**
     * 获取组织架构树
     *
     * @return
     */
    List<OrgOutDTO> getList();

    /**
     * 删除组织架构
     *
     * @param id
     * @param path
     * @return
     */
    Boolean delete(Integer id, String path, UserSsoDTO currentUser);

    /**
     * 通过id创建path
     *
     * @param id
     * @return
     */
    Boolean savePath(Integer id);

    /**
     * 获取组织架构树子节点
     *
     * @param preId
     * @return
     */
    List<OrgOutDTO> getTreeChildNodes(Integer preId);

    /**
     * 通过id获取组织架
     *
     * @param id
     * @return
     */
    OrgOutDTO getById(Integer id);
}
